package com.example.pm.ending.server.service;


import com.example.pm.ending.server.module.admin.AddNewAdminEntityDTO;
import com.example.pm.ending.server.module.admin.AdminListEntityVO;
import com.example.pm.ending.server.module.admin.UpdateAdminEntityDTO;
import com.example.pm.ending.server.pojo.vo.AdminListVO;
import com.example.pm.ending.server.pojo.vo.AdminStandardVO;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * 处理管理员数据的业务接口
 *
 * @author DL
 * @version 0.0.1
 */
@Transactional
public interface IAdminModuleService {

    /**
     * 类别“是否启用”的状态文本
     */
    String ENABLE_TEXT[] = {"禁用", "启用"};
    /**
     * 管理员用户名起始
     */
    public static final String OWNER_USERNAME_FIR = "GLY";

    /**
     * 从后截取的位数
     */
    public static final int SUBSTRING_LAST_INDEX = 4;
    /**
     * 启用
     */
    public static final Integer ENABLE_STATE = 1;
    /**
     * 启用
     */
    public static final Integer LONG_COUNT = 0;

    /**
     * 添加管理员
     *
     * @param addNewAdminEntityDTO 管理员数据
     */
    void addNew(AddNewAdminEntityDTO addNewAdminEntityDTO);
    /**
     * 查询管理员列表
     *
     * @return 管理员列表
     */
    List<AdminListEntityVO> list();
    /**
     * 删除管理员
     *
     * @param id 管理员id
     */
    void delete(Long id);
    /**
     * 修改管理员数据
     * @param id 被修改的管理员数据的ID
     * @param updateAdminEntityDTO 管理员的新数据
     */
    void updateInfoById(Long id, UpdateAdminEntityDTO updateAdminEntityDTO);
    /**
     * 启用类别
     *
     * @param id 尝试启用的类别的id
     */
    void setEnable(Long id);

    /**
     * 禁用类别
     *
     * @param id 尝试禁用的类别的id
     */
    void setDisable(Long id);


    AdminStandardVO getStandardById(Long id);



}
